#define _CRT_SECURE_NO_WARNINGS
#include "game.h"


void InitBoard(char arr[ROW][CLO], int row, int clo)
{
	int i, j;
	for (i = 0; i < ROW; i++)
	{
		for (j = 0; j < CLO; j++)
		{
			arr[i][j] = ' ';
		}
	}
}

void DisplayBoard(char arr[ROW][CLO], int row, int clo)
{ 
	int j=0;
	for (j = 0; j < row; j++)
	{
		int i = 0;
		for (i = 0; i < clo; i++)
		{
			printf(" %c ",arr[j][i]);
			if (i < clo - 1)
				printf("|");
		}
		printf("\n");
		if (j < row - 1)
		{
			for (i = 0; i < clo; i++)
			{
				printf("---");
				if (i < clo - 1)
					printf("|");
			}
		}
		printf("\n");
	}
	printf("\n"); 
}


void CompurterMove(char arr[ROW][CLO], int row, int clo)
{
	printf("电脑下棋:>\n");
	int x = 0;
	int y = 0;
	while (1)
	{
		x = rand() % row;//0~2
		y = rand() % clo;//0~2
		if (arr[x][y] == ' ')
		{
			arr[x][y] = '#';
			break;
		}
	}
}

void PlayerMove(char arr[ROW][CLO], int row, int clo)
{
	int x, y;
	printf("玩家下棋:>\n");
	while(1)
	{
		printf("请输入坐标:\n");
		scanf_s("%d %d", &x, &y);
		if (x >= 1 && x <= row && y >= 1 && y <= clo)
		{
			if (arr[x - 1][y - 1] == ' ')
			{
				arr[x - 1][y - 1] = '*';
				break;
			}
			else
			{
				printf("位置被占用，请重新输入\n");
			}
		}
		else
		{
			printf("输入错误，请重新输入\n");
		}
	}
}

char Iswin(char arr[ROW][CLO], int row, int clo)
{
	int i = 0;
	int j = 0;
	//判断行
		for (i = 0; i < row; i++)
		{
			if (arr[i][0] != ' ' && arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2])
				return arr[i][0];
		}
	//判断列
		for (j = 0; j < clo; j++)
		{
			if (arr[0][j] != ' ' && arr[0][j] == arr[1][j] && arr[1][j] == arr[2][j])
				return arr[0][j];
		}
	//判断斜线
		if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ')
		{
			return arr[1][1];
		}

		if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ')
		{
			return arr[1][1];
		}
	//判断棋盘是否满格
		for (i = 0; i < row; i++)
		{
			for (j = 0; j < clo; j++)
			{
				if (arr[i][j] == ' ')
				{
					return 'Q';//继续游戏
				}
			}
		}
		return 'C';//结束游戏：平局
}